#pragma once
#include "StaticEntity.h"
#include "IEntityFunctional.h"

namespace game
{
	enum EDefaultState
	{
		S_OBJECT_IDLE,
		S_OBJECT_DEAD,
	};

	template <typename t_state>
	class FunctionalEntity: public StaticEntity, public IEntityFunctional<t_state>//buildings//items//
	{
		//IEntityFunctional fields//
		t_state _state;
	public:
		//IEntityFunctional members//
		FunctionalEntity(t_state state,sf::Vector2f pos, animSprite * sprite, sf::RenderWindow * window, std::string name, int object_type_id):StaticEntity(pos,sprite,window,name,object_type_id)
		{
			_state = state;
		}
		~FunctionalEntity(){}
		t_state get_state(){return _state;}
		void set_state(t_state state){_state = state;}
		virtual void Init(){}
		virtual void Update(){}
	};
}

/*
#pragma once
namespace game
{

}
*/